<?php
class Bomon extends Model
{
    public function getBoMonByKhoa($k_id)
    {
        $sql = <<<SQL
SELECT bm_ten, bm_id
FROM bomon
WHERE dv_id = :id;
SQL;

        return $this->_db->run($sql, array('id' => $k_id));
    }

    # Kiểm tra khoa có bộ môn nào không, nếu không có thì thêm $k_id 00 -> Không thuộc bộ môn vào
    public function fix($k_id)
    {
        $sql = <<<SQL
SELECT COUNT(*) FROM bomon WHERE dv_id = :id
SQL;
        $c = $this->_db->run($sql, array('id' => $k_id));
        if (!$c) {
            $id = str_pad($k_id, 3, '0', STR_PAD_RIGHT);
            $this->insert(array('bm_id' => $id, 'dv_id' => $k_id, 'bm_ten' => 'Không có đơn vị trực thuộc'));
        }
    }

    public function selectAll()
    {
        $sql = <<<SQL
SELECT bm_id, bm_ten, donvi.dv_id AS k_id, dv_ten AS k_ten
FROM bomon NATURAL JOIN khoa NATURAL JOIN donvi
SQL;
        return $this->_db->run($sql);
    }

    public function updateBm($id, $ten, $khoa)
    {
        $this->update(array('bm_ten' => $ten, 'dv_id' => $khoa), "bm_id = :id", array('id' => $id));
    }

    public function getTen($id)
    {
        $data = $this->select("bm_id = :id", array("id" => $id));
        if ($data) {
            return $data[0]["bm_ten"];
        } else {
            return null;
        }
    }

    # L
    public function getKhoa($id)
    {
        $data = $this->select("bm_id = :id", array("id" => $id));
        if ($data) {
            return $data[0]['dv_id'];
        } else {
            return null;
        }
    }

    # Nhận về tên khoa của bộ môn
    public function getTenKhoa($id)
    {
        $data = $this->_db->run('SELECT dv_ten FROM donvi NATURAL JOIN khoa NATURAL JOIN bomon WHERE bm_id = :id',
            array('id' => $id));
        if ($data) {
            return $data[0]['dv_ten'];
        } else {
            return null;
        }
    }

    public function del($id)
    {
        # Xóa các cán bộ giảng dạy trong bộ môn
        $this->_db->run('DELETE FROM cbgiangday WHERE bm_id = :bm', array('bm' => $id));

        # Xóa các bộ môn
        $this->delete('bm_id = :id', array('id' => $id));
    }

    public function them($bm_ten, $k_id)
    {
        # get new id
        $newid = $this->_db->executeScalar('SELECT MAX(bm_id) AS Max FROM bomon WHERE dv_id = :k_id',
            array('k_id' => $k_id));
        if ($newid) {
            $newid = (int)$newid + 1;
        } else {
            $newid = str_pad($k_id, 2, '0', STR_PAD_RIGHT) . '1';
        }
        $this->insert(array('bm_id' => $newid,'bm_ten' => $bm_ten, 'dv_id' => $k_id));
        return $newid;
    }
}